We have developed a system and various methods for creating and using interlocking trees datastores. In particular, these structures and methods have been described in patent applications U.S. Ser. Nos. 10/385,421, (now published as US 20040181547 A1) and 10/666,382, by inventor Mazzagatti. Additionally, we described a system in which such interlocking trees datastores could more effectively be used in U.S. Ser. No. 10/879,329. All of these three patent documents are hereby incorporated herein in their respective entireties by this reference to them. While the system and method we describe in this patent relate with particularity to the specific interlocking trees datastores which inventor Mazzagatti hereof described in the above-referenced patent (applications), the system and methods described herein may also be applicable to similar structures.
While the interlocking trees datastores structure created by the system originally described in co-pending patent application U.S. Ser. No. 10/385,421, and the means for the Learn Engine taught in co-pending patent application U.S. Ser. No. 10/879,329 to allow the interlocking trees datastore to accept multiple inputs, provides many useful traits for understanding the inventions described, heretofore there has been a fundamental limit on its usefulness.
As taught by copending application U.S. Ser. No. 10/879,329, the Kstore Learn Engine can accept multiple sources of input such as sales transactions from different registers, or sales transactions from registers and purchase data from inventory, but, in order for the interlocking trees datastore (hereinafter ‘Kstore’ or ‘interlocking trees datastore’, or ‘K’, to be used interchangeably) to distinguish between multiple sources of data input, the associated data source information for the Kstore indicating the source of data input was taught to be stored outside of the Kstore structure. Under certain operating conditions or optimal configurations of the Kstore, such as when there are multiple types of data sources, it may be important that the distinction between the origins of individual data items be included within the knowledge of the Kstore data structure.
Given that the data structure did not exist prior to the teaching of the applications lists above, there did not exist a solution for including the knowledge of the sources of data within the Kstore structure as taught by the prior art. Accordingly, a new method of identifying the sources of multiple data sources within the Kstore data structure was designed. Therefore, the ability to include the distinction between multiple data sources in the Kstore was unavailable prior to this invention.
It should be clear that a single KStore data structure may contain data from multiple sources. If the data from the different sources is the same, for example sales transaction records from different cash registers in the same store, there may be no problem in determining any knowledge one might want from the data. If however the data from each source is different, for example sales transaction data from cash registers and product purchase data from inventory, or, if one wants to distinguish which data stream came from which cash register, it may be important that the distinction between the origins of individual data items be included in the knowledge of the KStore data structure in order to interpret the data when later querying the KStore.
For purposes of definition for this document, a data stream is considered all input from a data source, and preferably it will be sequential input of data from a data source. A sequence within such a stream may be a record, consisting of field variables and delimiters, or a sequence can be a text of a book if the stream is a library of books, or a sequence could be an image file in a portfolio of image files, or a sequence could be a tune in a jukebox. Generally we refer to sequences as records in a data stream but they could be any convenient segment of the data stream.